//携程控制动画播放后调用
using System.Collections;
using DG.Tweening;
using UnityEngine;

public class DOTweenCoroutine : MonoBehaviour
{
    private Tweener _tweener;
    void Start()
    {
        
        _tweener = transform.DOMoveX(2, 1).SetLoops(3);
        StartCoroutine(DOWaitForCompletion());    //等待动画循环播放完成后调用
        // StartCoroutine(DOWaitForElapsed());          //等待动画播放次数完成后调用
        // StartCoroutine(DOWaitForKill());             //等待动画销毁后调用
        // StartCoroutine(DOWaitForPosition());         //等待动画播放到位置时调用
        // StartCoroutine(DOWaitForRewind());           //等待动画回放时调用
        // StartCoroutine(DOWaitForStart());            //动画开始时调用
    }

    private IEnumerator DOWaitForCompletion()
    {
        yield return _tweener.WaitForCompletion();
        Debug.Log("动画所有次数播放完成调用！！！");
    }
    
    private IEnumerator DOWaitForElapsed()
    {
        yield return _tweener.WaitForElapsedLoops(2);
        Debug.Log("动画第二次播放完成调用！！！");
    }
    
    private IEnumerator DOWaitForKill()
    {
        yield return _tweener.WaitForKill();
        Debug.Log("动画销毁完成调用！！！");
    }
    
    private IEnumerator DOWaitForPosition()
    {
        yield return _tweener.WaitForPosition(2);
        Debug.Log("动画第二次时完成调用！！！");
    }
    
    private IEnumerator DOWaitForRewind()
    {
        yield return _tweener.WaitForRewind();
        Debug.Log("动画回放时调用！！！");
    }
    
    private IEnumerator DOWaitForStart()
    {
        yield return _tweener.WaitForStart();
        Debug.Log("动画开始时调用！！！");
    }
    
}
